From: Kenichi Handa Date: Thu, 14 Jan 2010 03:44:36 +0000 (+0900) Subject: Make auto-composition work on all buffers even if they are fundamental mode. X-Git-Tag: archive/raspbian/1%29.2+1-2+rpi1~1^2~324^2~8709^2~4 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:///%22http:/www.example.com/cgi/%22https:/www.github.com/%22bookmarks:/?a=commitdiff_plain;h=d40d35bdb5d411a1db99e7d82147061597a869e1;p=emacs.git Make auto-composition work on all buffers even if they are fundamental mode. --- d40d35bdb5d411a1db99e7d82147061597a869e1 diff --cc etc/ChangeLog index f1b38186f9d,f1b38186f9d..5a54cada2f5 --- a/etc/ChangeLog +++ b/etc/ChangeLog @@@ -1,3 -1,3 +1,7 @@@ ++2010-01-14 Kenichi Handa ++ ++ * NEWS: Describe the change of auto-composition-mode. ++ 2010-01-12 Glenn Morris * CONTRIBUTE, NEWS: Use bug-gnu-emacs rather than emacs-pretest-bug diff --cc etc/NEWS index 3b4faf099ce,3b4faf099ce..cd5b9a82d32 --- a/etc/NEWS +++ b/etc/NEWS @@@ -122,6 -122,6 +122,11 @@@ international/ucs-normalize.el ** Function arguments in *Help* buffers are now shown in upper-case. Customize `help-downcase-arguments' to t to show them in lower-case. ++** Delete Auto Composition Mode. Now the variable ++`auto-composition-mode' is simply a buffer local variable. The ++commands `auto-composition-mode' and `global-auto-composition-mode' ++still works as before. ++ * Editing Changes in Emacs 23.2 diff --cc lisp/ChangeLog index b9cd340f998,b9cd340f998..cf28cd6dfde --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@@ -1,3 -1,3 +1,14 @@@ ++2010-01-14 Kenichi Handa ++ ++ * composite.el (auto-composition-mode): Make it a buffer local ++ variable (permanent-local). ++ (auto-composition-function): Set the default value to ++ auto-compose-chars. ++ (auto-composition-mode): Make it a simple function, not a minor ++ mode. ++ (global-auto-composition-mode): Likewise. ++ (turn-on-auto-composition-if-enabled): Delete it. ++ 2010-01-12 Michael Albinus * files.el (copy-directory): Compute target for recursive diff --cc lisp/composite.el index ce7ea95800b,ce7ea95800b..4e91945b1b6 --- a/lisp/composite.el +++ b/lisp/composite.el @@@ -744,10 -744,10 +744,14 @@@ This function is the default value of ` (setq func 'compose-gstring-for-terminal)) (funcall func gstring)))) ++(make-variable-buffer-local 'auto-composition-mode) ++(put 'auto-composition-mode 'permanent-local t) ++ (make-variable-buffer-local 'auto-composition-function) ++(setq-default auto-composition-function 'auto-compose-chars) ;;;###autoload --(define-minor-mode auto-composition-mode ++(defun auto-composition-mode (&optional arg) "Toggle Auto Composition mode. With ARG, turn Auto Composition mode off if and only if ARG is a non-positive number; if ARG is nil, toggle Auto Composition mode; anything else turns Auto @@@ -758,29 -758,29 +762,23 @@@ by functions registered in `composition You can use `global-auto-composition-mode' to turn on Auto Composition mode in all buffers (this is the default)." -- nil nil nil -- (if noninteractive -- (setq auto-composition-mode nil)) -- (cond (auto-composition-mode -- (setq auto-composition-function 'auto-compose-chars)) -- (t -- (setq auto-composition-function nil)))) -- --(defun turn-on-auto-composition-if-enabled () -- (if enable-multibyte-characters -- (auto-composition-mode 1))) ++ (interactive "P") ++ (setq auto-composition-mode ++ (if arg ++ (or (not (integerp arg)) (> arg 0)) ++ (not auto-composition-mode)))) ;;;###autoload --(define-global-minor-mode global-auto-composition-mode -- auto-composition-mode turn-on-auto-composition-if-enabled -- ;; This :extra-args' appears to be the result of a naive copy&paste -- ;; from global-font-lock-mode. -- ;; :extra-args (dummy) -- :initialize 'custom-initialize-delay -- :init-value (not noninteractive) -- :group 'auto-composition -- :version "23.1") -- ++(defun global-auto-composition-mode (&optional arg) ++ "Toggle Auto-Composition mode in every possible buffer. ++With prefix arg, turn Global-Auto-Composition mode on if and only if arg ++is positive. ++See `auto-composition-mode' for more information on Auto-Composition mode." ++ (interactive "P") ++ (setq-default auto-composition-mode ++ (if arg ++ (or (not (integerp arg)) (> arg 0)) ++ (not (default-value 'auto-composition-mode))))) (defalias 'toggle-auto-composition 'auto-composition-mode) diff --cc src/ChangeLog index 2642888113c,2642888113c..2ef9ea9eb5a --- a/src/ChangeLog +++ b/src/ChangeLog @@@ -1,3 -1,3 +1,15 @@@ ++2010-01-14 Kenichi Handa ++ ++ Make auto-composition work on all buffers even if they are ++ fundamental mode. ++ ++ * composite.c (Vauto_composition_mode): New variable. ++ (composition_compute_stop_pos): Check Vauto_composition_mode ++ instead of Vauto_composition_function. ++ (composition_adjust_point, Ffind_composition_internal): Likewise. ++ (syms_of_composite): Declare Lisp variable ++ "auto-composition-mode" here. ++ 2010-01-13 Kenichi Handa Display buffer name, etc. in mode line by composing correctly. diff --cc src/composite.c index edebf1e3136,edebf1e3136..3c2bf409eed --- a/src/composite.c +++ b/src/composite.c @@@ -157,6 -157,6 +157,7 @@@ Lisp_Object composition_hash_table Lisp_Object Vcompose_chars_after_function; Lisp_Object Qauto_composed; ++Lisp_Object Vauto_composition_mode; Lisp_Object Vauto_composition_function; Lisp_Object Qauto_composition_function; Lisp_Object Vcomposition_function_table; @@@ -1039,7 -1039,7 +1040,7 @@@ composition_compute_stop_pos (cmp_it, c if (NILP (string) && PT > charpos && PT < endpos) cmp_it->stop_pos = PT; if (NILP (current_buffer->enable_multibyte_characters) -- || ! FUNCTIONP (Vauto_composition_function)) ++ || NILP (Vauto_composition_mode)) return; if (bytepos < 0) { @@@ -1478,7 -1478,7 +1479,7 @@@ composition_adjust_point (last_pt, new_ } if (NILP (current_buffer->enable_multibyte_characters) -- || ! FUNCTIONP (Vauto_composition_function)) ++ || NILP (Vauto_composition_mode)) return new_pt; /* Next check the automatic composition. */ @@@ -1661,7 -1661,7 +1662,7 @@@ See `find-composition' for more details if (!find_composition (from, to, &start, &end, &prop, string)) { if (!NILP (current_buffer->enable_multibyte_characters) -- && FUNCTIONP (Vauto_composition_function) ++ && ! NILP (Vauto_composition_mode) && find_automatic_composition (from, to, &start, &end, &gstring, string)) return list3 (make_number (start), make_number (end), gstring); @@@ -1788,6 -1788,6 +1789,11 @@@ The default value is the function `comp Qauto_composition_function = intern_c_string ("auto-composition-function"); staticpro (&Qauto_composition_function); ++ DEFVAR_LISP ("auto-composition-mode", &Vauto_composition_mode, ++ doc: /* Non-nil if Auto-Composition mode is enabled. ++Use the command `auto-composition-mode' to change this variable. */); ++ Vauto_composition_mode = Qt; ++ DEFVAR_LISP ("auto-composition-function", &Vauto_composition_function, doc: /* Function to call to compose characters automatically. This function is called from the display routine with four arguments: